#include <cstdio>
#include <cstring>
#include <vector>

using namespace std;

__int64 a[ 20001 ], mi[ 20001 ], ma[ 20001 ], n, m, f;
bool visit[ 20001 ];
vector<int> child[ 20001 ];
int in[ 20001 ];

void init( )
{
    __int64 i, j, u, v;
    memset( visit, 0, sizeof( visit ) );
    memset( in, 0, sizeof( in ) );
    for ( i = 0; i <= n; i++ )
        child[ i ].clear( );
    for ( i = 0; i < n; i++ )
    {
        scanf("%d", &a[ i + 1 ]);
        child[ 0 ].push_back( i + 1 );
    }
    for ( i = 0; i < m; i++ )
    {
        scanf("%d%d", &u, &v);
        in[ v ]++;
        child[ u ].push_back( v );
    }
}

void find( __int64 p )
{
    __int64 i, maxi = 0, mini = 0x7fffffff;
    if ( visit[ p ] )
        return ;
    visit[ p ] = true;
    mi[ p ] = ma[ p ] = a[ p ];
    if ( child[ p ].size( ) == 0 )
        return ;
    for ( i = 0; i < child[ p ].size( ); i++ )
    {
        find( child[ p ][ i ] );
        if ( maxi < mi[ child[ p ][ i ] ] )
            maxi = mi[ child[ p ][ i ] ];
        if ( mini > ma[ child[ p ][ i ] ] )
            mini = ma[ child[ p ][ i ] ];
    }
    mi[ p ] += mini;
    ma[ p ] += maxi;
}

void work( )
{
    int i;
    for ( i = 1; i <= n; i++ )
        if ( in[ i ] == 0 )
            break;
    find( i );
    if ( ma[ i ] >= f )
        printf("Victory\n");
    else
        printf("Glory\n");
}

int main( )
{
    while ( scanf("%I64d%I64d%I64d", &n, &m, &f) != EOF )
    {
        init( );
        work( );
    }
    return 0;
}
